<?php
/**
 * XGPHP 轻量级PHP框架
 * @link http://xgphp.xg3.cn
 * @version 2.0.0
 * @license http://www.apache.org/licenses/LICENSE-2.0
 * @author 讯高科技 <xungaokeji@qq.com>
*/
// 最低PHP版本
if(version_compare(PHP_VERSION,'5.6','<')){
	exit('min php version 5.6');
}

// PHP错误等级
if(!defined('XG_E_LEVEL')){
	define('XG_E_LEVEL',E_ALL^E_NOTICE^E_WARNING^E_DEPRECATED);// 默认错误级别
}
ini_set('display_errors',1);// 错误显示
error_reporting(XG_E_LEVEL);// 设置错误级别

define('XG',1);// 框架标记
define('XG_VERSION','2.0.0');// 框架版本号

date_default_timezone_set('Asia/Shanghai');
define('XG_START_TIME',microtime(true));// 脚本运行精确时间
define('XG_TIME',time());// 脚本运行时间戳

define('XG_DS',DIRECTORY_SEPARATOR);// 目录分隔符
define('XG_PHP',__DIR__);// 框架目录
if(!defined('XG_ROOT')){
	define('XG_ROOT',dirname(__DIR__));// 站点根目录
}

// PHP版本标记
if(version_compare(PHP_VERSION, '7.0.0', '>=')){
	define('XG_PHP_7',true);
}
if(version_compare(PHP_VERSION, '8.0.0', '>=')){
	define('XG_PHP_8',true);
}

spl_autoload_register(function($class){
	$_arr = explode('\\',$class);
	$_str = array_shift($_arr);
	$_class = implode('\\',$_arr);
	$_classFile = implode(XG_DS,$_arr);
	
	// 查找核心库文件
	if($_str == 'xg') // 查找框架内文件 [带xg\前缀的]
	{
		$phpfile = XG_PHP.XG_DS.'core'.XG_DS.$_classFile.'.php';
		if(!is_file($phpfile)){
			$phpfile = XG_PHP.XG_DS.$_classFile.'.php';
		}
		// 在框架内直接调用助手时 导入助手文件 并且指定别名
		if(!is_file($phpfile)){
			$phpfile = XG_PHP.XG_DS.'helper'.XG_DS.$_classFile.'.php';
			if(is_file($phpfile)){
				require_once $phpfile;
				return true;
			}
		}
	}
	else // 查找框架内文件[不带xg\前缀的]
	{
		if(!is_file($phpfile)){
			$phpfile = XG_PHP.XG_DS.$_str.XG_DS.$_classFile.'.php';
		}
	}
	// 文件存在则导入文件
	if(is_file($phpfile)){
		require_once $phpfile;
		return true;
	}
	return false;
});
if(defined('XG_BASE_ENV')){
	// 创建应用程序对象
	$app=\xg\App::run(XG_BASE_ENV);
}
?>